package com.xhs.service.impl;

import com.xhs.service.AbstractDecorateService;
import com.xhs.utils.JvmMapCacheUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

/**
 * @desc: 二级缓存redis
 * @projectName: tools-parent
 * @author: xhs
 * @date: 2022/12/4 23:33
 * @version: JDK 1.8
 */
@Slf4j
@Service
public class CacheRedisServiceImpl extends CacheJvmServiceImpl implements AbstractDecorateService {
//    @Autowired
////    private RedisUtil redisUtil;

    /**
     * 查询缓存中的数据
     *
     * @param key
     * @param <T>
     * @return
     */
    @Override
    public <T> T getCache(String key) {
        // 先查询一级缓存
        String cache = super.getCache(key);
        if (cache != null) {
            return (T) cache;
        }
        // 一级缓存中没有数据查询二级缓存
        // 可以是redis，也可以是mysql
        log.info("---------------查询二级缓存---------------");
//        Object object = redisUtil.get(key);
//        if (object == null) {
//            return null;
//        }
//        String string = object.toString();
        // 写入一级缓存
        String string = "查询二级缓存";
        JvmMapCacheUtils.putEntity(key, string);
        return (T) string;
    }
}
